12E - Start of the session - CodeForces Solution


constructive algorithms *2100

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;

int n;
int t[1001][1001]; // i rzad, j kolumna; 1 rzad, 2 kolumna
//wspolrzedne zer to to po prostu wszystkie te same i i j

void wypisz()
{
    for(int i = 0; i < n; i ++) // Wypisanie wyniku
    { //            UWAGA! POMOCNICZE SPACJE!
        for(int j = 0; j < n; j ++)
        {
            cout << t[i][j] << " ";
            //if((t[i][j] <= 9) && (t[i][j] != -1)) cout << " ";
        }
        cout << "\n";
    }
}

void pomocnicze_przekatne(int i, int j, int wartosc)
{
    while(i > 0)
    {
        if(t[i][j] != 0) t[i][j] = wartosc;
        i --;
        j ++;
    }
}

int main()
{
    cin >> n;
    if(n == 2)
    {
        cout << 0 << " " << 1 << "\n" << 1 << " " << 0 << "\n";
        return 0;
    }
    for(int i = 0; i < n; i ++)
    {
        for(int j = 0; j < n; j ++)
        {
            if(i != j)
                t[i][j] = -1;
        }
    }

    for(int i = 1; i < n; i ++) // uzupelnienie ostatniego rzedu i ostatniej kolumny
    {
        t[n - 1][n - i - 1] = i;
        t[n - i - 1][n - 1] = i;
    }

    // Zaznaczenie wiadomych przekatnych
    for(int i = 0; i < n - 3; i ++)
    {
        for(int j = 0; j < n - i - 1; j ++) // Uwaga przy j
        {
            if(t[n - j - 1][j + i] != 0) t[n - j - 1][j + i] = t[n - 1][i];
        }
    }
    //wypisz();
    //cout << "\n";
    t[n - 2][0] = t[n - 1][n - 3];
    t[0][n - 2] = t[n - 1][n - 3];
    for(int i = n - 2; i > 1; i --) // Dodac aktualizacje dodatkowych przekatnych
    {
        t[i][0] = t[i + 1][i - 1];
        t[0][i] = t[i + 1][i - 1];
        if(t[i][1] == -1)
        {
            t[i][1] = t[i + 1][n - 1];
            t[1][i] = t[i + 1][n - 1];
            pomocnicze_przekatne(i, 1, t[1][i]);
        }
    }
    t[1][0] = t[2][n - 1];
    t[0][1] = t[2][n - 1];
    wypisz();
    //cout << "\n";

    return 0;
}


Comments

Submit
0 Comments
More Questions

347. Top K Frequent Elements
1503. Last Moment Before All Ants Fall Out of a Plank
430. Flatten a Multilevel Doubly Linked List
1290. Convert Binary Number in a Linked List to Integer
1525. Number of Good Ways to Split a String
72. Edit Distance
563. Binary Tree Tilt
1306. Jump Game III
236. Lowest Common Ancestor of a Binary Tree
790. Domino and Tromino Tiling
878. Nth Magical Number
2099. Find Subsequence of Length K With the Largest Sum
1608A - Find Array
416. Partition Equal Subset Sum
1446. Consecutive Characters
1618A - Polycarp and Sums of Subsequences
1618B - Missing Bigram
938. Range Sum of BST
147. Insertion Sort List
310. Minimum Height Trees
2110. Number of Smooth Descent Periods of a Stock
2109. Adding Spaces to a String
2108. Find First Palindromic String in the Array
394. Decode String
902. Numbers At Most N Given Digit Set
221. Maximal Square
1200. Minimum Absolute Difference
1619B - Squares and Cubes
1619A - Square String
1629B - GCD Arrays